home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / linuxdoc-sgml-1.1 / sgmls-1.1 / synxtrn.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-03  |  6.5 KB  |  153 lines

  1. /* SYNXTRN.H: External declarations for concrete syntax constants.
  2. */
  3. /* Short References
  4. */
  5. #define SRCT    32            /* Number of short reference delimiters. */
  6. #define SRMAXLEN 3            /* Maximum length of a SHORTREF delimiter. */
  7. #define SRNPRT   8            /* Number of non-printable SHORTREF delimiters. */
  8. struct srdel {
  9.      struct map dtb[SRCT+2];  /* LEXCNM: Short reference delimiters. */
  10.      char *pdtb[SRNPRT+1];    /* LEXCNM: Printable form of unprintable SRs. */
  11.      int fce;                 /* LEXCNM: Index of first FCE in srdeltab. */
  12.      int hyp2;                /* LEXCNM: Index of "two hyphens" in srdeltab. */
  13.      int data;                /* LEXCNM: Index of first SR with data char. */
  14.      int hyp;                 /* LEXCNM: Index of hyphen in srdeltab. */
  15.      int prtmin;              /* LEXCNM: Index of 1st printable SR. */
  16.      int spc;                 /* LEXCNM: Index of space in srdeltab. */
  17.      int lbr;              /* LEXCNM: Index of left bracket in srdeltab. */
  18.      int rbr;              /* LEXCNM: Index of right bracket in srdeltab. */
  19. };
  20. struct delim {
  21.      UNCH genre;              /* LEXCON: Generated RE; cannot be markup. */
  22.      UNCH lit;                /* LEXMARK: Char used as LIT delimiter.*/
  23.      UNCH lita;               /* LEXMARK: Char used as LITA delimiter.*/
  24.      UNCH mdc;                /* LEXLMS: Char used as MDC delimiter.*/
  25.      UNCH msc;                /* LEXCON: Char used as MSC delimiter. */
  26.      UNCH net;                /* LEXCON: Char used as NET when enabled.*/
  27.      UNCH pero;               /* LEXMARK: Char used as PERO delimiter. */
  28.      UNCH pic;                /* LEXCON: Char used as PIC delimiter.*/
  29.      UNCH tago;               /* LEXCON: Char used as TAGO when enabled.*/
  30. };
  31. struct lexcode {
  32.      UNCH fce;                /* LEXCNM: FRE character as entity reference. */
  33.      UNCH fre;                /* LEXCON: Free character not an entity ref. */
  34.      UNCH litc;               /* LEXLMS: Literal close delimiter enabled. */
  35.      UNCH msc;                /* LEXLMS: Marked section close delim enabled. */
  36.      UNCH net;                /* LEXCON: Null end-tag delimiter enabled. */
  37.      UNCH nonet;              /* LEXCON: NET disabled; still used as ETI. */
  38.      UNCH spcr;               /* LEXCNM: Space in use as SHORTREF delimiter. */
  39.      UNCH tago;               /* LEXCON: Tag open delimiter enabled. */
  40.      UNCH cde;                /* LEXLMS: CDATA/SDATA delimiters. */
  41. };
  42. struct lexical {
  43.      struct markup m;         /* Markup strings for text processor. */
  44.      struct srdel s;          /* Short reference delimiters. */
  45.      struct delim d;          /* General delimiter characters. */
  46.      struct lexcode l;        /* Lexical table code assignments. */
  47. };
  48. extern struct lexical lex;    /* Delimiter set constants. */
  49. extern UNCH lexcnm[];         /* Lexical table: mixed content. */
  50. extern UNCH lexcon[];         /* Lexical table for content (except mixed). */
  51. extern UNCH lexgrp[];         /* Lexical table for groups. */
  52. extern UNCH lexlms[];         /* Lexical table: literals and marked sections. */
  53. extern UNCH lexmark[];        /* Lexical table for markup. */
  54. extern UNCH lexsd[];          /* Lexical table for SGML declaration. */
  55. extern UNCH lextran[];        /* Case translation table for SGML names. */
  56. extern UNCH lextoke[];        /* Lexical table for tokenization. */
  57. extern UNCH *lextabs[];       /* List of all lexical tables. */
  58. extern struct parse pcbconc;  /* PCB: character data. */
  59. extern struct parse pcbcone;  /* PCB: element content (no data allowed). */
  60. extern struct parse pcbconm;  /* PCB: mixed content (data allowed). */
  61. extern struct parse pcbconr;  /* PCB: replaceable character data. */
  62. extern struct parse pcbetag;  /* PCB: end-tags. */
  63. extern struct parse pcbgrcm;  /* PCB: content model group. */
  64. extern struct parse pcbgrcs;  /* PCB: content model suffix. */
  65. extern struct parse pcbgrnm;  /* PCB: name group. */
  66. extern struct parse pcbgrnt;  /* PCB: name token group. */
  67. extern struct parse pcblitc;  /* PCB: literal with CDATA. */
  68. extern struct parse pcblitp;  /* PCB: literal with CDATA, parm & char refs. */
  69. extern struct parse pcblitr;  /* PCB: attribute value with general refs. */
  70. extern struct parse pcblitt;  /* PCB: tokenized attribute value. */
  71. extern struct parse pcblitv;  /* PCB: literal with CDATA, function char trans.*/
  72. extern struct parse pcbmd;    /* PCB: markup declaration. */
  73. extern struct parse pcbmdc;   /* PCB: comment declaration. */
  74. extern struct parse pcbmdi;   /* PCB: markup declaration (ignored). */
  75. extern struct parse pcbmds;   /* PCB: markup declaration subset. */
  76. extern struct parse pcbmsc;   /* PCB: marked section in CDATA mode. */
  77. extern struct parse pcbmsi;   /* PCB: marked section in IGNORE mode. */
  78. extern struct parse pcbmsrc;  /* PCB: marked section in RCDATA mode. */
  79. extern struct parse pcbpro;   /* PCB: prolog. */
  80. extern struct parse pcbref;   /* PCB: reference. */
  81. extern struct parse pcbstag;  /* PCB: start-tag. */
  82. extern struct parse pcbval;   /* PCB: attribute value. */
  83. extern struct parse pcbeal;   /* PCB: end of attribute list. */
  84. extern struct parse pcbsd;    /* PCB: SGML declaration. */
  85. extern int pcbcnda;           /* PCBCONM: data in buffer. */
  86. extern int pcbcnet;           /* PCBCONM: markup found or data buffer flushed.*/
  87. extern int pcbmdtk;           /* PCBMD: token expected. */
  88. extern int pcbstan;           /* PCBSTAG: attribute name expected. */
  89. extern int pcblittda;          /* PCBLITT: data character found */
  90.  
  91. #define KANY 0
  92. #define KATTLIST 1
  93. #define KCDATA 2
  94. #define KCONREF 3
  95. #define KCURRENT 4
  96. #define KDEFAULT 5
  97. #define KDOCTYPE 6
  98. #define KELEMENT 7
  99. #define KEMPTY 8
  100. #define KENDTAG 9
  101. #define KENTITIES 10
  102. #define KENTITY 11
  103. #define KFIXED 12
  104. #define KID 13
  105. #define KIDLINK 14
  106. #define KIDREF 15
  107. #define KIDREFS 16
  108. #define KIGNORE 17
  109. #define KIMPLIED 18
  110. #define KINCLUDE 19
  111. #define KINITIAL 20
  112. #define KLINK 21
  113. #define KLINKTYPE 22
  114. #define KMD 23
  115. #define KMS 24
  116. #define KNAME 25
  117. #define KNAMES 26
  118. #define KNDATA 27
  119. #define KNMTOKEN 28
  120. #define KNMTOKENS 29
  121. #define KNOTATION 30
  122. #define KNUMBER 31
  123. #define KNUMBERS 32
  124. #define KNUTOKEN 33
  125. #define KNUTOKENS 34
  126. #define KO 35
  127. #define KPCDATA 36
  128. #define KPI 37
  129. #define KPOSTLINK 38
  130. #define KPUBLIC 39
  131. #define KRCDATA 40
  132. #define KRE 41
  133. #define KREQUIRED 42
  134. #define KRESTORE 43
  135. #define KRS 44
  136. #define KSDATA 45
  137. #define KSHORTREF 46
  138. #define KSIMPLE 47
  139. #define KSPACE 48
  140. #define KSTARTTAG 49
  141. #define KSUBDOC 50
  142. #define KSYSTEM 51
  143. #define KTEMP 52
  144. #define KUSELINK 53
  145. #define KUSEMAP 54
  146.  
  147. #define NKEYS (KUSEMAP+1)
  148.  
  149. extern UNCH key[NKEYS][REFNAMELEN+1];
  150.  
  151. /* Holds the SGML keyword (not alterable by concrete syntax). */
  152. extern UNCH sgmlkey[];
  153.